package com.netdisk.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 通用返回结果类
 */
@Data
@ApiModel(value = "通用返回结果", description = "API统一返回结果")
public class Result<T> {
    private Integer code;  // 1=成功，0=失败
    private String msg;    // 简要提示信息
    private T data;        // 返回的业务数据

    // 快速生成成功响应（无数据）
    public static <T> Result<T> success() {
        return new Result<>(1, "操作成功", null);
    }

    // 快速生成成功响应（带数据）
    public static <T> Result<T> success(T data) {
        return new Result<>(1, "操作成功", data);
    }

    // 快速生成失败响应
    public static <T> Result<T> error(String msg) {
        return new Result<>(0, msg, null);
    }

    // 构造器私有化
    private Result(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
}
